package com.bdqn.struts.util;

import com.opensymphony.xwork2.ActionSupport;

import javax.xml.bind.TypeConstraintException;
import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Map;

public class DateConverter extends ActionSupport {
    private final DateFormat[] dfs = {
            new SimpleDateFormat("yyyy 年MM 月dd 日"),
            new SimpleDateFormat("yyyy-MM-dd"),
            new SimpleDateFormat("MM/dd/yy"),
            new SimpleDateFormat("yyyy.MM.dd"),
            new SimpleDateFormat("yyMMdd"),
            new SimpleDateFormat("yyyy/MM/dd")
    };

    /**
     * 将指定格式字符串转换为日期类型
     * 将从表单上获取的日期,转成Date类型的日期
     */


    public Object convertFromString(Map context, String[] values, Class toType) {
        String dateStr = values[0];//获取日期的字符串
        for (int i = 0; i < dfs.length; i++) {
            try {
                return dfs[i].parse(dateStr);
            } catch (ParseException e) {
                continue;
            }
        }
        throw new TypeConstraintException("转换错误");
    }

    //将date类型的日期，转成字符串
    public String convertToString(Map map, Object o) {
        Date date = (Date) o;
    //输出格式为yyy-mm-dd
        return new SimpleDateFormat("yyyy-MM-dd").format(date);
    }
}